import javafx.scene.layout.Priority;

import java.util.*;

public class project {
    public int[] findSwapValues(int[] array1, int[] array2) {
        int sum1=0;
        int sum2=0;
        Set<Integer> set=new HashSet<>();
        for(int i:array1){
            sum1+=i;
        }
        for(int i : array2){
            set.add(i);
            sum2+=i;
        }
        int sum=sum1-sum2;
        if(sum%2!=0){
            return new int[0];
        }
        sum/=2;
        for(int array : array1){
            if(set.contains(array-sum)){
                return new int[]{array,array-sum};
            }
        }
        return new int[0];
    }

















    public boolean isPossibleDivide(int[] nums, int k) {
        if(nums.length%k!=0){
            return false;
        }
        Map<Integer,Integer> map=new HashMap<>();
        PriorityQueue<Integer> queue=new PriorityQueue<>();
        for(int i : nums){
            queue.add(i);
            map.put(i,map.getOrDefault(i,0)+1);
        }
        while (!queue.isEmpty()){
            int tmp=queue.poll();
            if(map.get(tmp)==0){
                continue;
            }
            for(int i=0;i<k;i++){
                int sum=map.getOrDefault(tmp+i,0);
                if(sum==0){
                    return false;
                }
                map.put(i+tmp,sum-1);
            }
        }
        return true;
    }














    public boolean isNStraightHand(int[] hand, int groupSize) {
        int len=hand.length;
        if(len%groupSize!=0){
            return false;
        }
        Map<Integer,Integer> map=new HashMap<>();
        PriorityQueue<Integer> priorityQueue=new PriorityQueue<>();
        for(int i : hand){
            map.put(i,map.getOrDefault(i,0)+1);
            priorityQueue.add(i);
        }
        while (!priorityQueue.isEmpty()){
            int tmp=priorityQueue.poll();
            if(map.get(tmp)==0){
                continue;
            }
            for(int i=0;i<groupSize;i++){
                int sum=map.getOrDefault(i+tmp,0);
                if(sum==0){
                    return false;
                }
                map.put(tmp+i,sum-1);
            }
        }
        return true;
    }
}
